const Router = require('koa-router')
const router = new Router({ prefix: '/xwzx' })
const u = require('../api')
var pageSize = 10
// 面包屑
let crumbsData = [{
  name: '首页',
  href: '/'
}, {
  name: '新闻资讯',
  href: ''
}]

// 根目录
router.get('/', async (ctx) => {
  // 获取新闻资讯列表
  let getNews = await u.http({
    url: u.queryNewsList,
    params: {
      pageNum: 1,
      pageSize,
      newsType: '',
      title: ctx.query.keyword || ''
    }
  })
  // 获取问题列表
  let getProblem = await u.http({
    url: u.queryQaList,
    params: {
      pageNum: 1,
      pageSize: 10
    }
  })
  
  await ctx.render('xwzx.ejs', {
    config: ctx.config,
    newsData: getNews.code == 200 ? getNews.data.list : [],
    newsDataTotal: getNews.code == 200 ? getNews.data.total : 0,
    newsDataPageNum: getNews.code == 200 ? getNews.data.pageNum : 0,
    newsDataPageSize: pageSize,
    crumbsData,
    searchValue: ctx.query.keyword || '',
    problemData: getProblem.code == 200 ? getProblem.data.list : []
  })
})

// 二级目录
router.get('/:file', async (ctx) => {
  let paramsArr = ctx.params.file ? ctx.params.file.split('-') : []
  let paramsPage = ''
  let paramsFileArr = []
  paramsArr.forEach((item, index) => {
    // 分页
    if (item.charAt(0) == 'p') {
      paramsPage = item
    } else {
      // 类型数组
      paramsFileArr.push(item)
    }
  })
  // 验证分页参数必须是p开头数字结尾
  if (paramsPage && !/^p\d+$/.test(paramsPage)) {
    ctx.throw(404)
  }
  let pageNum = paramsPage ? (paramsPage.split('p')[1] || 1) : 1
  // 验证新闻类型数组不可超过一个
  if (paramsFileArr.length > 1) {
    ctx.throw(404)
  }
  let paramsFile = paramsFileArr.length > 0 ? paramsFileArr[0] : ''
  // 验证第一个参数必须是字母
  if (paramsFile && !/^[a-z]+$/.test(paramsFile)) {
    ctx.throw(404)
  }
  // 面包屑
  let crumbsData = [{
    name: '首页',
    href: '/'
  }, {
    name: '新闻资讯',
    href: '/xwzx'
  }]
  // 设置类型
  let newsType = ''
  let flag = true
  ctx.config.navChildren.forEach(item => {
    if (item.typeAliases == paramsFile) {
      flag = false
      newsType = item.id
      crumbsData.push({
        name: item.typeName,
        href: ''
      })
      return false
    }
    if (paramsFile == '') {
      flag = false
      crumbsData[1].href = ''
    }
  })
  // 验证当前新闻资讯是否存在
  if (flag) {
    ctx.throw(404)
  }
  // 获取新闻资讯列表
  let getNews = await u.http({
    url: u.queryNewsList,
    params: {
      pageNum,
      pageSize,
      newsType,
      title: ctx.query.keyword || ''
    }
  })
  // 获取问题列表
  let getProblem = await u.http({
    url: u.queryQaList,
    params: {
      pageNum: 1,
      pageSize: 10
    }
  })
  ctx.config.tdk.title = newsType == 1 ? '公司动态-彧胜实业' : '行业新闻-彧胜实业'
  ctx.config.tdk.description = ''
  ctx.config.tdk.keywords = ''
  
  await ctx.render('xwzx.ejs', {
    config: ctx.config,
    newsData: getNews.code == 200 ? getNews.data.list : [],
    newsDataTotal: getNews.code == 200 ? getNews.data.total : 0,
    newsDataPageNum: getNews.code == 200 ? getNews.data.pageNum : 0,
    newsDataPageSize: pageSize,
    crumbsData,
    searchValue: ctx.query.keyword || '',
    problemData: getProblem.code == 200 ? getProblem.data.list : []
  })
})

module.exports = router